// 封装筛选权限路由模块
import { asyncRoute, constantRoutes } from '@/router/index'
const state = {
  routes: []// 声明变量 保存筛选出来的权限路由数据
}
const mutations = {
  setRoutes(state, routes) {
    // 把静态路由对象和动态路由对象拼接在一起，用于渲染侧边栏导航
    state.routes = [...constantRoutes, ...routes]
  }
}
const actions = {
  filtersRoutes(store, menus) {
    // // 实现筛选功能
    // 因为动态路由数据必须进入页面之前要获取到，否则登录之后，
    // 没有动态路由的话，就进不去这些动态路由页面了，所以我们必
    // 须把调用filtersRoutes函数放在前置导航守卫中进行调用
    console.log(17, menus, asyncRoute)
    // 通过动态路由数组和menus数组
    const routes = asyncRoute.filter(item => {
      return menus.indexOf(item.name) !== -1
    })
    console.log(22, routes)
    store.commit('setRoutes', routes)
    return routes
  }

}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
